package com.hqyj.finance.server.commons.financecommons.utils;

import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.CircleCaptcha;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

@Component
//我自定义的一些公共工具组件
public class MyCommonsUtils {

    @Resource
    private RedisUtil redisUtil;

    //利用糊涂工具类生成图形验证码
    public void generateRandomCodeImage(HttpServletResponse response,String token) throws Exception{
        //定义图形验证码的长、宽、验证码字符数、干扰元素个数
        CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(120, 60, 4, 20);
        //CircleCaptcha captcha = new CircleCaptcha(200, 100, 4, 20);
        //图形验证码写出，可以写出到文件，也可以写出到流
        //captcha.write("d:/circle.png");
        //验证图形验证码的有效性，返回boolean值
        //captcha.verify("1234");
        String randomCode =  captcha.getCode(); //每次自动生成的验证码

        redisUtil.set(token,randomCode,5); //让这个验证码5分钟后自动过期。
        captcha.write(response.getOutputStream());
    }
}
